///////////////////////////////////////////////////////////////////////////////////////
#include <Servo.h>
#include <SoftwareSerial.h> 
SoftwareSerial mySerial(A1,A2); 
Servo myservo1;////ตีวยืด
Servo myservo2;////ตีวคีบ
int potpin = 0;
int pos1=90;
int pos2=90;
int DLS=50;
String readString;
const int Pin_A =  4;
const int Pin_B =  5;
const int Pin_C =  6;
const int Pin_D =  7;
const int Pin_E =  8;
const int Pin_F =  9;
const int Pin_G =  10;
const int Pin_H =  11;
char unChar;
void setup() 
{
pinMode(Pin_A, OUTPUT);
pinMode(Pin_B, OUTPUT);
pinMode(Pin_C, OUTPUT);
pinMode(Pin_D, OUTPUT);
pinMode(Pin_E, OUTPUT);
pinMode(Pin_F, OUTPUT);
pinMode(Pin_G, OUTPUT);
pinMode(Pin_H, OUTPUT);
  myservo1.attach(2); //ตัวยืด
  myservo2.attach(3);//ตัวคีบ
delay(100);
digitalWrite(Pin_A, LOW);
digitalWrite(Pin_B, LOW);
digitalWrite(Pin_C, LOW);
digitalWrite(Pin_D, LOW);
digitalWrite(Pin_E, LOW);
digitalWrite(Pin_F, LOW);
digitalWrite(Pin_G, LOW);
digitalWrite(Pin_H, LOW);
//delay(1000);
  Serial.begin(57600);
  while (!Serial)
  {
  }
//  Serial.println("Goodnight moon!");
  mySerial.begin(9600);
//  mySerial.println("Hello, world?");
 
}
void loop() 
{ 
  if (mySerial.available()) 
  {
    unChar = mySerial.read();
    Serial.println(unChar);
   if(unChar=='G')
    {
   DLS=15;
   delay(500);
     }
    if(unChar=='H')
    {
   DLS=50; 
     }
     
  if(unChar=='A')///////
    {
    DD();
     }
  if(unChar=='B')
    {
    BK();
    }
  
  if(unChar=='C')
    {
     RRR();///สไลด์
    }
  if(unChar=='D')
     {
   LLL();//สไลด์
     }
    
    if(unChar=='E')//L1
    {
  RR();
    }   
   if(unChar=='F')//L2 
    {
RR1();
    }
       
 //////////////////////////////   
    if(unChar=='M')//R1
    {
LL();
    }   
  if(unChar=='N')//R2
    {
LL1();
    }   
     
    if(unChar=='I')//สามเหลี่ยม
    {
   if(pos1>=180)
   {
     pos1=180;
   }
    else
    {    
  pos1=pos1+5;
  myservo1.write(pos1); 
  delay(10);
    }
    }  
     
       if(unChar=='L')//วงกลม
    {
  if(pos1<=0)
  {
   pos1=0;  
  }
  else
  {
  pos1=pos1-5;
  myservo1.write(pos1);  
  delay(10);    
  }
 }  
    if(unChar=='J')//กากบาท
        
    {
      if(pos2<=60)
      {
       pos2=60;  
       }
       else
       {
    int I=1;
   while(I<=20)
   {
    ++I;
    pos2--;
  myservo2.write(pos2); 
   delay(10);} 
       }
   
    }   
    
        if(unChar=='K')//สี่เหลี่ยม
    {
      
    if(pos2>=180)
    {
     pos2=180; 
      }
      else
      { 
int i=1;
  while(i<=20)  
  {     
    i++;
   pos2++;
  myservo2.write(pos2); 
  delay(10);
     }
      }
    }  
/////////////////////////////////////////////////////////////////
  }
//////////////////////////////////////////  
else
{
digitalWrite(Pin_A, LOW);
digitalWrite(Pin_B, LOW);
digitalWrite(Pin_C, LOW);
digitalWrite(Pin_D, LOW);
digitalWrite(Pin_E, LOW);
digitalWrite(Pin_F, LOW);
digitalWrite(Pin_G, LOW);
digitalWrite(Pin_H, LOW);
delay(10);
  }
}
void DD()
{
digitalWrite(Pin_A, LOW);
digitalWrite(Pin_B, HIGH);
digitalWrite(Pin_C, LOW);
digitalWrite(Pin_D, HIGH);
digitalWrite(Pin_E, LOW);
digitalWrite(Pin_F, HIGH);
digitalWrite(Pin_G, LOW);
digitalWrite(Pin_H, HIGH);
    delay(DLS);  
}
void BK()
{
digitalWrite(Pin_A, HIGH);
digitalWrite(Pin_B, LOW);
digitalWrite(Pin_C, HIGH);
digitalWrite(Pin_D, LOW);
digitalWrite(Pin_E,  HIGH);
digitalWrite(Pin_F, LOW);
digitalWrite(Pin_G, HIGH);
digitalWrite(Pin_H,LOW);
    delay(DLS);  
}
void RR()
{
digitalWrite(Pin_A, HIGH);
digitalWrite(Pin_B, LOW);
digitalWrite(Pin_C, HIGH);
digitalWrite(Pin_D, LOW);
digitalWrite(Pin_E, LOW);
digitalWrite(Pin_F, HIGH);
digitalWrite(Pin_G, LOW);
digitalWrite(Pin_H, HIGH);
    delay(DLS);  
}
void RR1()
{
digitalWrite(Pin_A, HIGH);
digitalWrite(Pin_B, LOW);
digitalWrite(Pin_C, HIGH);
digitalWrite(Pin_D, LOW);
digitalWrite(Pin_E, LOW);
digitalWrite(Pin_F, HIGH);
digitalWrite(Pin_G, LOW);
digitalWrite(Pin_H, HIGH);
    delay(DLS);  
}
void LL()
{
digitalWrite(Pin_A, LOW);
digitalWrite(Pin_B, HIGH);
digitalWrite(Pin_C, LOW);
digitalWrite(Pin_D, HIGH);
digitalWrite(Pin_E, HIGH);
digitalWrite(Pin_F, LOW);
digitalWrite(Pin_G, HIGH);
digitalWrite(Pin_H, LOW);
    delay(DLS);  
}
void LL1()
{
digitalWrite(Pin_A, LOW);
digitalWrite(Pin_B, HIGH);
digitalWrite(Pin_C, LOW);
digitalWrite(Pin_D, HIGH);
digitalWrite(Pin_E, HIGH);
digitalWrite(Pin_F, LOW);
digitalWrite(Pin_G, HIGH);
digitalWrite(Pin_H, LOW);
    delay(DLS);   
}
////////////////////////////////////
void RRR()//สไลด์ขวา
{
digitalWrite(Pin_A, HIGH);
digitalWrite(Pin_B, LOW);
digitalWrite(Pin_C, LOW);
digitalWrite(Pin_D, HIGH);
digitalWrite(Pin_E, LOW);
digitalWrite(Pin_F, HIGH);
digitalWrite(Pin_G, HIGH);
digitalWrite(Pin_H, LOW);
    delay(DLS); 
}
void LLL()//สไลด์ซ้าย
{
digitalWrite(Pin_A, LOW);
digitalWrite(Pin_B, HIGH);//
digitalWrite(Pin_C, HIGH);
digitalWrite(Pin_D, LOW);//
digitalWrite(Pin_E, HIGH);
digitalWrite(Pin_F, LOW);//
digitalWrite(Pin_G, LOW);
digitalWrite(Pin_H, HIGH); // 
delay(DLS);  
  
}